package com.jtny.nytb.dataparam.service;

import com.jtny.component.entity.PageData;
import com.jtny.component.exception.ServiceException;
import com.jtny.nytb.dataparam.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

@Api(value = "数据参量Service接口", tags = "数据参量Service接口")
@Service
public interface DataParamService {
    @ApiOperation("通过名称查询数据变量")
    List<ConfigDataParamManagementVO> queryByName(@PathVariable("name") String var1);

    @ApiOperation("保存数据参量管理接口")
    ConfigDataParamManagementVO save(@RequestBody ConfigDataParamManagementVO var1) throws ServiceException;

    @ApiOperation("通过id获取参量管理数据")
    ConfigDataParamManagementVO queryById(@PathVariable("id") Long var1);

    ConfigDataParamManagementVO getByName(@PathVariable("name") String var1);

    @ApiOperation("更新数据参量管理接口")
    ConfigDataParamManagementVO update(@RequestBody ConfigDataParamManagementVO var1) throws ServiceException;

    PageData<ConfigDataParamManagementVO> queryByPage(ConfigDataParamManagementPageVO configDataParamManagementPageVO);

    @ApiOperation("分页查询")
    PageData<ConfigDataParamManagementVO> queryPage(@RequestBody ConfigDataParamManagementPageVO var1);

    @ApiOperation("通过id删除")
    ConfigDataParamManagementVO deleteById(@PathVariable("id") Long var1);

    @ApiOperation("通过id列表删除")
    void deleteByIdList(@PathVariable("ids") List<Long> var1);

    @ApiOperation("导出excel")
    void downloadManagement(HttpServletResponse response) throws ServiceException;

    @ApiOperation("获取所有的数据参量")
    List<ConfigDataParamManagementVO> queryAllDataParam();

    @ApiOperation("批量保存")
    Map<Long, String> saveBatch(@RequestBody List<ConfigDataParamManagementVO> var1);

    @PostMapping({"mapCodeAndIdSaveBatch"})
    Map<String, Long> mapCodeAndIdSaveBatch(@RequestBody List<ConfigDataParamManagementVO> var1);

    @ApiOperation("批量更新")
    void updateBatch(@RequestBody List<ConfigDataParamManagementVO> var1);

    Long countAll();

    List<ConfigDataParamManagementVO> listCut(@PathVariable("offset") Long var1, @PathVariable("limit") Long var2);

    @ApiOperation("通过时间查询参量")
    List<ConfigDataParamManagementVO> listByCreateTime(@PathVariable("time") Long var1);

    @ApiOperation("通过时间查询参量")
    List<ConfigDataParamManagementVO> listByUpdateTime(@PathVariable("time") Long var1);

    @ApiOperation("获取列表")
    List<ConfigDataParamManagementVO> listByIds(@PathVariable("dataParamIds") List<Long> var1);

    @ApiOperation("获取列表")
    Map<Long, ConfigDataParamManagementVO> mapByIds(@PathVariable("dataParamIds") List<Long> var1);

    @ApiOperation("获取参量列表")
    List<ConfigDataParamManagementVO> listByParams(@RequestBody DataParamQueryVO var1);

    @ApiOperation("通过参数查询参量")
    List<Long> queryParamsByParam(@RequestBody DevicePageQueryVO var1);

    @ApiOperation("通过参量id查询数据")
    List<DeviceParamVO> queryDataByParamIds(@RequestBody List<Long> var1);

    @ApiOperation("通过参量id和名称查询数据")
    List<ConfigDataParamManagementVO> queryDataByParamIdsAndName(@RequestBody List<Long> var1, @RequestParam(value = "factorName",required = false) String var2);

    void updateDataParamName(@PathVariable("equipmentName") String var1, @RequestBody List<Long> var2);

    @ApiOperation("通过参量code查询参量名称")
    ConfigDataParamManagementVO getParamNameByCode(String var1);

    @ApiOperation("导入参量和算法关系")
    void importParamAndAlgorit(Map<String, List<?>> importData);

    @ApiOperation("更新参量状态")
    void updateStatus(Integer var1, List<Long> var2);

    void downloadTeamplate(HttpServletResponse response);
}

